Date: Wed, 20 Nov 1996 21:54:35 GMT
Server: Apache/1.0.3
Content-type: text/html
Content-length: 6069
Last-modified: Thu, 17 Oct 1996 14:57:29 GMT

<HTML>
<HEAD>
<TITLE>CS 532 Homepage</TITLE>
</HEAD>

<!-- describe the document, avoid context sensitive descriptions -->
<meta name="description" 
      value="An on-line course on programming language concepts.  The course offers lectures, assignments, and a mosaic of information about programming language design from all over the web.">

<!-- keywords for the document -->
<meta name="keywords"
     value="programming language, course">

<!-- should be "document" unless providing a search, then "service" -->
<meta name="resource-type" 
      value="document">

<!-- use global for documents to be indexed outside BYU -->
<meta name="distribution" value="local">



<BODY BGCOLOR="#FFFFFF">

<H1>CS 532: Advanced Programming Languages</H1>
<H2>Fall 1996</H2>

Welcome to CS 532, Advanced Concepts of Programming Languages.  This page
contains information related to the class such as class policies and the
assignments.  Please let <!WA0><A
HREF="http://lal.cs.byu.edu/people/windley/windley.html">Dr. Windley</A> know if there's
anything we can do to improve it.

 <P>


<HR>

<H2>Class Information</H2>
<MENU>
<LI> <!WA1><A HREF="http://lal.cs.byu.edu/cs532/geninfo.html">General Stuff</A>
<LI> <!WA2><A HREF="http://lal.cs.byu.edu/cs532/policies.html">Policies</A>
<LI> <!WA3><A HREF="http://lal.cs.byu.edu/cs532/students.html">Students</A>
</MENU>


<HR>

<A NAME="orientation">
<H2>Getting Started</H2>
</A>
Survival in this course requires a working knowledge of UNIX commands, the Emacs editor, electronic mail (email), and Mosaic. <!WA4><A HREF="http://lal.cs.byu.edu/cs330/orientation/orientation.html">Information on getting started with each of these is online.</A>
<P>
<HR>

<A NAME="assignments">
<H2>Assignments</H2>
</A>
<UL>

<LI> <B>Assignment 1: Lazy Functional Languages</B> Haskell (Gofer) is a
strongly typed functional language with lazy evaluation.  in this
assignment you will explore Haskell and see how it relates to other
languages with which you are familiar. The resource document is the <!WA5><A
HREF="http://lal.cs.byu.edu/cs330/sources/haskell-tutorial.ps">Haskell tutorial</A> (in
PostScript).  Read it, run the examples, and write some code. Think about
how it compares with other languages you know such as Pascal, C++, Scheme,
Lisp, Prolog.  How is it the same? How is it different?  What's good about
it?  What's not good about it? Why does functional programming matter?<P>

Obviously, you will not be able to cover every aspect of the language.
Pick some part of Haskell that appeals to you or you think is interesting
and explore that <EM>in depth</EM>.
<P>

<!WA6><A
HREF="http://www.cs.yale.edu/HTML/YALE/CS/haskell/yale-fp.html">More information
on the Haskell Programming language  is available here.</A>   A <!WA7><A
HREF="http://lal.cs.byu.edu/cs532/gofer/docs/goferdoc/goferdoc.html">manual (in HTML)</A> is
available online.<P>

<B><EM>Paper:</EM></B> Week of September 9th.
<P>


<LI> <B>Assignment 2: Programming with Lists</B>
Using Chapter 3 of Reade and Chapter 3 in Davie as references, explore the
use of lists in Haskell.  Pay special attention to list comprehensions, how
comprehensions can be translated to simpler functions, and to the use of
structural induction in proving properties of functional programs that use
lists.  <P>

<B><EM>Paper:</EM></B> Week of September 16th.  This paper may be an
extension of what you did last week or a new topic.  
<P>

<LI> <B>Assignment 3: Datatypes and Interpreters</B>
Use Chapters 5 and 6 of Reade as your primary references with supporting
chapters from Davie.  There are a number of simple command interpreters in
the literature.  In fact, its so easy to define simple interpreters using
concrete datatypes to represent abstract syntax and pattern-matching
functions as the interpreter that the literature is full of examples of
small interpreters defined in functional languages.
<P>

<B><EM>Paper:</EM></B> Week of September Sep 30th.  I'd like you to explore
the use of functional languages to define the operational semantics of
languages.  There are some interesting extensions to what you'll find in
Reade.  For example, can you define an interpreter for a small assembly
language and then define a translator from Reade's language into your
assembly language?  Does interpreting a chunk of code using the
<TT>interpret</TT> function give the result as translating it and then
running it on your assembly language interpreter?  This is just one
idea. There are a lot of place to go with this.
<P>

<STRONG>
Note that you have two weeks to work on this.  Your groups will not meet
with me the week of the 23rd since I'll be out of town Thursday and Friday.
Continue to meet with groups.  Ask me any questions you have.  Since you
have two weeks to work on this, I'll expect the papers to be higher quality
and the work to be more  complete.  <P>
</STRONG>

<LI> <B>Assignment 4: Lazy Evaluation</B>
I'd like you to explore
lazy evaluation using Chapter 7 of Reade and whatever other resources you
can get your hands on.  Brownie points for outside references.
<P>

<B><EM>Paper:</EM></B> Week of Oct 7th.  (continued to week of Oct 14th)
<P>

<li> <b>Assignment 5: Denotational Semantics</B>

Read and explore chapter 10 of Reade.  There are a lot of resources on
denotational semantics, make use of them.  Don't get into fixpoint
semantics too heavily since we'll do that next week.
<P>

<B><EM>Paper:</EM></B> During the week of Oct 21st, I'd like a preliminary
paper that we can discuss.  You'll be expanding it over the coming few
weeks.  
<P>


</UL>

<P>
<HR>






<h2>
<!WA8><a href="http://www.cs.byu.edu/homepage.html">
<!WA9><img align=MIDDLE src="http://lal.cs.byu.edu/images/buttons/button-home.gif" alt="[]">
 Go to the BYU CS Department Home Page</a> </h2><p>

 
<ADDRESS>Created Jan 6, 1995</ADDRESS>
<EM>Updated
Tue Sep 10 10:02:46 1996
</EM><ADDRESS>
by <!WA10><a href="http://lal.cs.byu.edu/people/windley/windley.html">Phillip J. Windley
</a>
&lt;<!WA11><a href="mailto:windley@lal.cs.byu.edu">windley@lal.cs.byu.edu</a>&gt;</ADDRESS>

<P><hr> 
&copy; 1995-1996, Phillip
J. Windley.  All rights reserved.  Reproduction of all or part of this work
is permitted for educational or research use provided that this copyright
notice is included in any copy. 
<hr><P> 

</BODY>
</HTML>
